package jp.co.dailyReport.project;

import java.util.Calendar;
import org.apache.log4j.Logger;

/**
 * プロジェクトクラス
 */
public class Project {

	private static Logger log = Logger.getLogger(Project.class);

	//プロジェクトID
	protected int projectId;
	//取引先ID
	protected int customerId;
	//プロジェクト名
	protected String name;
	//プロジェクト開始日
	protected Calendar periodStart;
	//プロジェクト終了日
	protected Calendar periodEnd;
	//プロジェクトリーダーの社員ID
	protected int pLStaffId;
	//概要
	protected String outline;
	//取引先体制
	protected String pjCustomerStaff;
	//プロジェクト終了フラグ
	protected boolean statusFlg;
	//削除フラグ
	protected boolean delFlg;
	//更新日
	protected Calendar upDay;

	/**
	 * プロジェクトIDを設定します。
	 * 
	 * @param projectId プロジェクトID
	 */
	public void setProjectId(int projectId) {
		this.projectId = projectId;
	}

	/**
	 * プロジェクトIDを取得します。
	 * 
	 * @return projectId
	 */
	public int getProjectId() {
		return projectId;
	}

	/**
	 * 取引先IDを設定します。
	 * 
	 * @param customerId 取引先ID
	 */
	public void setCustomerId(int customerId) {
		this.customerId = customerId;
	}

	/**
	 * 取引先IDを取得します。
	 * 
	 * @return customerId
	 */
	public int getCustomerId() {
		return customerId;
	}

	/**
	 * プロジェクト名を設定します。
	 * 
	 * @param name プロジェクト名
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * プロジェクト名を取得します。
	 * 
	 * @return name
	 */
	public String getName() {
		return name;
	}

	/**
	 * プロジェクト開始日を設定します。
	 * 
	 * @param periodStart プロジェクト開始日
	 */
	public void setPeriodStart(Calendar periodStart) {
		this.periodStart = periodStart;
	}

	/**
	 * プロジェクト開始日を取得します。
	 * 
	 * @return periodStart
	 */
	public Calendar getPeriodStart() {
		return periodStart;
	}

	/**
	 * プロジェクト開始年を取得します。
	 * 
	 * @return periodStartY
	 */
	public int getPeriodStartY() {
		return periodStart.get(Calendar.YEAR);
	}

	/**
	 * プロジェクト開始月を取得します。
	 * 
	 * @return periodStartM
	 */
	public int getPeriodStartM() {
		return periodStart.get(Calendar.MONTH) + 1;
	}

	/**
	 * プロジェクト開始日を取得します。
	 * 
	 * @return periodStartD
	 */
	public int getPeriodStartD() {
		return periodStart.get(Calendar.DATE);
	}

	/**
	 * プロジェクト終了日を設定します。
	 * 
	 * @param periodEnd プロジェクト終了日
	 */
	public void setPeriodEnd(Calendar periodEnd) {
		this.periodEnd = periodEnd;
	}

	/**
	 * プロジェクト終了日を取得します。
	 * 
	 * @return periodEnd
	 */
	public Calendar getPeriodEnd() {
		return periodEnd;
	}

	/**
	 * プロジェクト終了年を取得します。
	 * 
	 * @return periodEndY
	 */
	public int getPeriodEndY() {
		return periodEnd.get(Calendar.YEAR);
	}

	/**
	 * プロジェクト終了月を取得します。
	 * 
	 * @return periodEndM
	 */
	public int getPeriodEndM() {
		return periodEnd.get(Calendar.MONTH) + 1;
	}

	/**
	 * プロジェクト終了日を取得します。
	 * 
	 * @return periodEndD
	 */
	public int getPeriodEndD() {
		return periodEnd.get(Calendar.DATE);
	}

	/**
	 * プロジェクトリーダーの社員IDを設定します。
	 * 
	 * @param pLStaffId プロジェクトリーダーの社員ID
	 */
	public void setPLStaffId(int pLStaffId) {
		this.pLStaffId = pLStaffId;
	}

	/**
	 * プロジェクトリーダーの社員IDを取得します。
	 * 
	 * @return pLStaffId
	 */
	public int getPLStaffId() {
		return pLStaffId;
	}

	/**
	 * 概要を設定します。
	 * 
	 * @param outline 概要
	 */
	public void setOutline(String outline) {
		this.outline = outline;
	}

	/**
	 * 概要を取得します。
	 * 
	 * @return outline
	 */
	public String getOutline() {
		return outline;
	}

	/**
	 * 取引先体制を設定します。
	 * 
	 * @param pjCustomerStaff 取引先体制
	 */
	public void setPjCustomerStaff(String pjCustomerStaff) {
		this.pjCustomerStaff = pjCustomerStaff;
	}

	/**
	 * 取引先体制を取得します。
	 * 
	 * @return pjCustomerStaff
	 */
	public String getPjCustomerStaff() {
		return pjCustomerStaff;
	}

	/**
	 * プロジェクト終了フラグを設定します。
	 * 
	 * @param statusFlg プロジェクト終了フラグ
	 */
	public void setStatusFlg(boolean statusFlg) {
		this.statusFlg = statusFlg;
	}

	/**
	 * プロジェクト終了フラグを取得します。
	 * 
	 * @return statusFlg
	 */
	public boolean isStatusFlg() {
		return statusFlg;
	}

	/**
	 * 削除フラグを設定します。
	 * 
	 * @param delFlg 削除フラグ
	 */
	public void setDelFlg(boolean delFlg) {
		this.delFlg = delFlg;
	}

	/**
	 * 削除フラグを取得します。
	 * 
	 * @return delFlg
	 */
	public boolean isDelFlg() {
		return delFlg;
	}

	/**
	 * 更新日を設定します。
	 * 
	 * @param upDay 更新日
	 */
	public void setUpDay(Calendar upDay) {
		this.upDay = upDay;
	}

	/**
	 * 更新日を取得します。
	 * 
	 * @return upDay
	 */
	public Calendar getUpDay() {
		return upDay;
	}
}
